# coding=utf-8
# 代码文件：chapter7/ch7.2.1.py
import os

from win32com import client as wc  # 导入模块


# 查找dir目录下ext后缀名的文件列表
# dir参数是文件所在目录，ext参数是文件后缀名

def findext(dir, ext):
    allfile = os.listdir(dir)

    # 返回过滤器对象
    files_filter = filter(lambda x: x.endswith(ext), allfile)
    # 从过滤器对象提取列表
    list2 = list(files_filter)
    return list2  # 返回过滤后条件文件名


if __name__ == '__main__':

    #  设置输入目录
    indir = r'C:\Users\tony\OneDrive\书\电子\Python自动化办公\code\chapter7\data\test\in'
    #  设置输出目录
    outdir = r'C:\Users\tony\OneDrive\书\电子\Python自动化办公\code\chapter7\data\test\out'

    wordapp = wc.Dispatch("Word.Application")  # 创建Word应用程序对象

    # 查找indir目录中所有.doc文件
    list2 = findext(indir, '.doc')

    for name in list2:
        infile = os.path.join(indir, name)  # 将目录和文件名连接起来
        name = name.replace('.doc', '.docx')
        outfile = os.path.join(outdir, name)
        document = wordapp.Documents.Open(infile)  # 打开Word文件
        document.SaveAs(outfile, FileFormat=12)

        print(outfile, "转换OK。")
        document.Close(0)  # 关闭Word 0表示不保存变更

    print("Game Over！")
